using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Phoenix.ActionResults;
using Phoenix.Filters;

namespace Phoenix.Framework
{
    public interface IActionDescriptor
    {
        Task<ActionResult> Execute(IController controller, ControllerActionContext controllerActionContext);
        IEnumerable<FilterAttribute> GetFilterAttributes(bool cacheAttributeInstances);
        IControllerDescriptor ControllerDescriptor { get; }
    }
}